package com.fulihui.systemcore.util;

import org.apache.commons.lang3.StringUtils;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;

/**
 * @author leeson 2016年5月20日 下午2:35:34
 *
 */
public class PinYinUtil {
    @SuppressWarnings("deprecation")
    public static String toPinYin(String hanyu) {
        if (StringUtils.isEmpty(hanyu)) {
            return null;
        }

        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
        // UPPERCASE：大写  (ZHONG)  
        // LOWERCASE：小写  (zhong)  
        format.setCaseType(HanyuPinyinCaseType.UPPERCASE);
        // WITHOUT_TONE：无音标  (zhong)
        // WITH_TONE_NUMBER：1-4数字表示英标  (zhong4)  
        // WITH_TONE_MARK：直接用音标符（必须WITH_U_UNICODE否则异常）  (zhòng)  
        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        // WITH_V：用v表示ü  (nv)  
        // WITH_U_AND_COLON：用"u:"表示ü  (nu:)  
        // WITH_U_UNICODE：直接用ü (nü)  
        format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);

        try {
            return PinyinHelper.toHanyuPinyinString(hanyu, format, "_");
        } catch (Exception e) {
            return null;
        }
    }

    public static void main(String[] args) throws Exception {
        System.out.println(PinYinUtil.toPinYin("系统管理"));
    }
}